#include <iostream>
#include <string>

using namespace std;

/*
使用引用传参的好处

以往使用指针 调用传参的时候 需要取地址

然后在函数内部 需要解指针

*/

void func_swap_1(int val_1, int val_2)
{
    int temp = val_1;
    val_1 = val_2;
    val_2 = temp;
}

void func_swap_2(int *val_1, int *val_2)
{
    int temp = *val_1;
    *val_1 = *val_2;
    *val_2 = temp;
}

void func_swap_3(int &val_1, int &val_2)
{
    int temp = val_1;
    val_1 = val_2;
    val_2 = temp;
}

int main(int argc, char const *argv[])
{
    int val_1 = 80;
    int val_2 = 60;

    // 值传递
    func_swap_1(val_1, val_2);
    cout << val_1 << " " << val_2 << endl;

    // 指针传递
    val_1 = 80;
    val_2 = 60;
    func_swap_2(&val_1, &val_2);
    cout << val_1 << " " << val_2 << endl;

    // 引用传递
    val_1 = 80;
    val_2 = 60;
    func_swap_3(val_1, val_2);
    cout << val_1 << " " << val_2 << endl;

    return 0;
}
